#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2014-08-22 01:14:23
# @Author  : shitao.tommy (hero007asd@gmail.com)
# @Link    : http://example.org
# @Version : $Id$

from web.handler.api import BaseApiHandler
from lib.tornado_routes import route
from tornado import gen
from tornado.web import asynchronous
from lib import libimage,libpage
from web.models.api.dorm.accident import Accident

head_title = '特殊事件'

@route(r'api/dorm/accident/new/?',name='acc_new')
class NewAccHandler(BaseApiHandler):
    '''
    @title 发布特殊事件
    @method post
    @param studentId 学生id 默认:''
    @param accInfo 特殊事件信息 默认：''
    @retfield isOk 发布成功与否1成功0失败 
    @return {status:200, message:'', data:null}---status:500(系统错误)400(请传入必要参数)
    @description 发布特殊事件
    '''
    @asynchronous
    @gen.coroutine
    def post(self):
        student_id = self.get_argument('studentId', default='')
        acc_info = self.get_argument('accInfo', default='')
        if acc_info == '':
            self.write_fail(None, 400, '请传入特殊事件内容')
        else:
            ret = yield Accident().new(student_id, acc_info)
            if ret == '-1':
                self.write_fail(None, 500, '系统错误')
            elif ret == '0':
                self.write_success({'isOk':0})
            elif ret == '1':
                self.write_success({'isOk':1})
        self.finish()


@route(r'api/dorm/accident/list/?',name='acc_list')
class ListAccHandler(BaseApiHandler):
    '''
    @title 特殊事件列表
    @method get
    @param type 事件处理类型：2所有0未处理1已处理 默认：1
    @param page 第几页 默认：1
    @param offset 每页显示多少数据 默认：20
    @retfield id 事件id
    @retfield accInfo 事件内容
    @retfield studentId 学生id 默认：空
    @retfield isOk 事件处理类型：0未处理1已处理
    @retfield createTime 发布时间
    @return {status:200, message:'', data:null}---status:500(系统错误)400(请传入必要参数)
    @description 特殊事件列表
    '''
    @asynchronous
    @gen.coroutine
    def get(self):
        typea = self.get_argument('type', default='')
        page = self.get_argument('page', default=1)
        offset = self.get_argument('offset', default=20)

        ret = yield Accident().list(typea, libpage.start(page, offset), offset)
        if ret == '-1':
            self.write_fail(None, 500, '系统错误')
        else:
            self.write_success(ret)

        self.finish()


@route(r'api/dorm/accident/upd/?',name='acc_upd')
class UpdAccHandler(BaseApiHandler):
    '''
    @title 处理特殊事件
    @method post
    @param accId 特殊事件id 默认:''
    @retfield isOk 发布成功与否1成功0失败 
    @return {status:200, message:'', data:null}---status:500(系统错误)400(请传入特殊事件id)
    @description 处理特殊事件
    '''
    @asynchronous
    @gen.coroutine
    def post(self):
        acc_id = self.get_argument('accId', default='')
        if acc_id == '':
            self.write_fail(None, 400, '请传入特殊事件id')
        else:
            ret = yield Accident().upd(acc_id)
            if ret == '-1':
                self.write_fail(None, 500, '系统错误')
            elif ret == '0':
                self.write_success({'isOk':0})
            elif ret == '1':
                self.write_success({'isOk':1})
        self.finish()

